
APP1 = libsparse.a
APP2 = simg2img
APP3 = simg2simg
APP4 = img2simg

OBJS1 = sparse_crc32.o backed_block.o output_file.o sparse.o sparse_err.o sparse_read.o
OBJS2 = simg2img.o $(APP1)
OBJS3 = simg2simg.o $(APP1)
OBJS4 = img2simg.o $(APP1)

CFLAG = -Wall
IFLAG = -I./include
LFLAG =
LDFLAG =

ifdef INCZLIB
IFLAG += -I$(INCZLIB)
endif

ifdef LIBZLIB
LDFLAG += $(LIBZLIB)
endif

.PHONY: all clean

all: $(APP1) $(APP2) $(APP3) $(APP4)
ifneq ($(TARGET),)
	cp -raf $^ $(TARGET)
endif

$(APP1): $(OBJS1)
ifneq ($(LDFLAG),)
	$(AR) -x $(LDFLAG)
endif
	$(AR) cqs $@ *.o

$(APP2): $(OBJS2)
	$(CC) $(CFLAG) $(IFLAG) -o $@ $^

$(APP3): $(OBJS3)
	$(CC) $(CFLAG) $(IFLAG) -o $@ $^

$(APP4): $(OBJS4)
	$(CC) $(CFLAG) $(IFLAG) -o $@ $^

%.o: %.c
	$(CC) $(CFLAG) $(IFLAG) -c -o $@ $<

clean:
	rm -rf *.o *.a $(APP1) $(APP2) $(APP3) $(APP4)
